package br.com.infnet.formularioeletronico.dados;

import br.com.infnet.formularioeletronico.interfaces.IUsuarioDAO;
import br.com.infnet.formularioeletronico.modelo.Usuario;
import javax.persistence.EntityManager;
import javax.persistence.Query;

public class UsuarioDAO extends AbstractDAO<Usuario> implements IUsuarioDAO {

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public UsuarioDAO() {
        super(Usuario.class);
    }


    @Override
    public Usuario autenticarUsuario(String login, String senha) {

        Usuario retorno = new Usuario();

        if (!login.isEmpty()) {

            retorno = this.obterPorLogin(login);

            if (retorno.getId() != null) {

                if (!retorno.getSenha().equals(senha)) {
                    retorno = new Usuario();
                }
            }
        }

        return retorno;
    }

    @Override
    public Usuario obterPorLogin(String login) {

        Usuario retorno = new Usuario();

        try {
            String sql = "select o from Usuario as o "
                    + "where o.login = :login ";

            Query query = em.createQuery(sql).
                    setHint("eclipselink.refresh", "true").
                    setParameter("login", login);

            retorno = (Usuario) query.getSingleResult();

        } catch (Exception e) {
            //deixar sem e.printStackTrace();
        }
        return retorno;
    }
}
